(function($) {

	cliente = {
		formNode : null,
		buscarBottonNode : null,
		tablaNode : null,
		buscarClienteUrl : null,
		buscarDetalleUrl : null,

		init : function(formNode,tablaNode, buscarBottonNode, buscarClienteUrl, buscarDetalleUrl) {
			this.formNode = formNode;
			this.tablaNode = tablaNode;
			this.buscarBottonNode = buscarBottonNode;
			this.buscarClienteUrl = buscarClienteUrl;
			this.buscarDetalleUrl = buscarDetalleUrl;
			cliente.conectEventClick(buscarBottonNode);
		},

		conectEventClick : function(elementNode) {
			elementNode.click(function() {
				cliente.createJTableCliente();
				cliente.tablaNode.jtable('load');
			});
		},
		
		setSubmitAction : function(clienteId,actionUrl) {
			var input = $("<input>").attr("type", "hidden").attr("name", "clienteId").val(clienteId);
			$('#form_detallecliente').append($(input));
			$('#form_detallecliente').attr("action",actionUrl);
			$('#form_detallecliente').submit();
		},

		createJTableCliente : function() {
			cliente.tablaNode.jtable({
				title : 'Lista de Clientes',
				selecting : true, // Enable selecting
				paging : true, // Enable paging
				pageSize : 10, // Set page size (default: 10)
				sorting : true, // Enable sorting
				actions : {
					listAction : function(postData, jtParams) {
						var formulario = $('#form_listacliente');
						return $.Deferred(function($dfd) {
							$.ajax({
								url : cliente.buscarClienteUrl
										+ '?jtStartIndex='
										+ jtParams.jtStartIndex
										+ '&jtPageSize=' + jtParams.jtPageSize+'&'+formulario.serialize(),
								type : 'POST',
								dataType : 'json',
								data: postData,
								processData:false,
								success : function(data) {
									$dfd.resolve(data);
								},
								error : function() {
									$dfd.reject();
								}
							});
						});
					}
				},
				fields : {
					clienteId : {
						key : true,
						list : false
					},
					codigo : {
						title : 'C\u00F3digo'
					},
					nombre : {
						title : 'Cliente'
					},
					documento : {
						title : 'Documento'
					},
					direccion : {
						title : 'Direcci\u00F3n'
					},
					representante : {
						title : 'Representante'
					},
					actualizacion : {
						title : 'Actualizaci\u00F3n'
					},
					usuario : {
						title : 'Usuario'
					},
					detalle : {
						display : function(data) {
							return '<a href="javascript:cliente.setSubmitAction(\''
									+ data.record.clienteId+'\',\''
									+cliente.buscarDetalleUrl
									+ '\');">'+'Ver Detalle</a>';
						}
					}
				}
			});
		}

	};
})(jQuery);